package com.market.plus.core.service;

import java.util.List;

import org.springframework.web.multipart.commons.CommonsMultipartFile;

import com.market.plus.core.domain.Album;
import com.market.plus.core.domain.News;
import com.market.plus.core.domain.Participant;
import com.market.plus.core.domain.Tribe;
import com.market.plus.core.dto.AlbumDto;
import com.market.plus.core.dto.CommentDto;
import com.market.plus.core.dto.TribeDto;
import com.market.plus.core.model.ImageSizeType;
import com.market.plus.core.model.MetadataFile;
import com.market.plus.core.model.MultipartFile;
import com.market.plus.core.model.Picture;
import com.opm.security.core.model.ExternalUserDetails;


public interface MarketOCMService {

   String addParticipant(Participant participant, CommonsMultipartFile avatarFile, String username, String password) throws Exception;

   String addFiles(String albumGUID, MultipartFile multipartFile) throws Exception;

   String saveNews(Participant participant, News news, long[] myFriendIds) throws Exception;

   String addAlbum(Participant participant, Album album) throws Exception;

   String addTribe(Participant participant, Tribe tribe, Album album, CommonsMultipartFile avatarFile) throws Exception;

   List<AlbumDto> getAlbums(String participantGUID);

   List<TribeDto> getTribes(String participantGUID);

   List<CommentDto> getComment(String newsGUID);

   String[] getNewGUIDs(String participantGUID);

   String[] getTribeNewGUIDs(String tribeGUID);

   MetadataFile getFile(String fileGUID, ImageSizeType imageSizeType);

   List<Picture> getPictures(String albumGUID);

   String comments(String newsGUID, CommentDto comment) throws Exception;

   ExternalUserDetails loadUserByUsername(String username);
}
